import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  //作用: 用来全局定义一些共享的数据状态  仅仅定义，修改赋值在 set get中进行
  state: {
    token: '',
    userInfo: JSON.parse(sessionStorage.getItem('userInfo')),
  },
  //作用: set  用来定义对共享的数据修改的一系列函数
  mutations: {
    //第一个参数是上面的state，第二个参数是传过来的token
    SET_TOKEN(state, token) {
      //1.token全局赋值
      state.token = token;
      //2.token存入浏览器  关闭标签页后数据不会消失
      localStorage.setItem("token", token);
    },

    SET_USERINFO(state, userInfo) {
      //1.userInfo全局赋值
      state.userInfo = userInfo;
      //2.userInfo存入sessionStorage   关闭标签页后数据自动删除 sessionStorage只能存字符串，不能存对象
      sessionStorage.setItem("userInfo", JSON.stringify(userInfo));
    },

    REMOVE_INFO(state) {
      state.token = '';
      state.userInfo = {};
      localStorage.setItem("token", '');
      sessionStorage.setItem("userInfo", JSON.stringify(''));
    }
  },
  //作用: get
  getters: {},
  actions: {},
  modules: {}
})















